package com.diandian.backend.dingding.data.mapper;

import com.diandian.backend.dingding.data.domain.DingdingStaffSalary;
import com.diandian.backend.dingding.data.dto.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface DingdingStaffSalaryMapper {

    // 查询记录数
    Integer getCount(@Param("data") DingdingStaffSalaryPageParamDTO requestDTO);

    // 查询分页中的数据集合
    List<DingdingStaffSalary> getPage(@Param("data") DingdingStaffSalaryPageParamDTO requestDTO, @Param("pageSize") Integer pageSize, @Param("offset") Integer offset);

    // 查询详情
    DingdingStaffSalary getDetail(@Param("data") DingdingStaffSalaryDetailParamDTO requestDTO);

    // 根据数据id更新记录
    void updateById(@Param("data") DingdingStaffSalaryUpdateByIdParamDTO param);

    // 批量根据数据id更新记录
    void batchUpdateById(@Param("dataList") List<DingdingStaffSalaryUpdateByIdParamDTO> dataList);

    // 根据数据id删除记录
    void deleteById(@Param("data") DingdingStaffSalaryDeleteByIdParamDTO param);

    void deleteByBelongAndSalarySchedule(@Param("belong") String belong, @Param("salarySchedule") String salarySchedule);

    // 新增
    void add(@Param("data") DingdingStaffSalaryAddParamDTO param);

    // 批量新增
    void batchAdd(@Param("dataList") List<DingdingStaffSalaryAddParamDTO> dataList);

    // 查询数据集合
    List<DingdingStaffSalary> getList(@Param("data") DingdingStaffSalaryListParamDTO requestDTO);

}